suppressPackageStartupMessages(library(tidyverse))
## Warning: package 'ggplot2' was built under R version 4.2.3
## Warning: package 'tidyr' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.3
## Warning: package 'dplyr' was built under R version 4.2.3
## Warning: package 'stringr' was built under R version 4.2.3
devtools::load_all('~/Google Drive/My Drive/Scripts/R_packages/myUtilities/')
## ℹ Loading myUtilities
library(patchwork)
## Warning: package 'patchwork' was built under R version 4.2.3

Settings

data_dir <- '/Volumes/Mitsu_NGS_3/METTL2A/'

wd <- "/Users/s-mitsutomi/My Drive (shuheimitsutomi@ric.u-tokyo.ac.jp)/Analysis/METTL2A/"
setwd(wd)

figdir <- paste0(wd, 'Figures/DRS_mapping/')
tabledir <- paste0(wd, 'Tables/DRS/Mapping/Spliced/ChrM/')

theme_set(
  theme_classic(base_size = 7) +
    theme(legend.position = 'bottom')
)

Functions

read_cpm_chrM <- function(path) {
  
  read_tsv(path) |> 
    filter(seqname == 'chrM')
  
}

Read data

chrM_cpms <- 
  fs::dir_ls(
    path = paste0(wd, 'Tables/DRS/Mapping/Spliced/Bedgraph/CPM/'), 
    glob = '*.tsv.gz'
  ) |> 
  map(read_cpm_chrM) |> 
  purrr::reduce(bind_rows) |> 
  separate(sample, into = c('num', 'type', 'si', 'rep'), sep = '_')
## Rows: 40611883 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): seqname, sample, strand
## dbl (3): start, end, cpm
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Rows: 42480443 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): seqname, sample, strand
## dbl (3): start, end, cpm
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
chrM_cpms
## # A tibble: 168,455 × 9
##    seqname start   end    cpm num   type      si    rep   strand
##    <chr>   <dbl> <dbl>  <dbl> <chr> <chr>     <chr> <chr> <chr> 
##  1 chrM        0     1 -1000. 7     siMETTL2A I     N1    -     
##  2 chrM        1     2 -1008. 7     siMETTL2A I     N1    -     
##  3 chrM        2     3 -1023. 7     siMETTL2A I     N1    -     
##  4 chrM        3     4 -1031. 7     siMETTL2A I     N1    -     
##  5 chrM        4     7 -1036. 7     siMETTL2A I     N1    -     
##  6 chrM        7     8 -1039. 7     siMETTL2A I     N1    -     
##  7 chrM        8     9 -1054. 7     siMETTL2A I     N1    -     
##  8 chrM        9    11 -1058. 7     siMETTL2A I     N1    -     
##  9 chrM       11    12 -1054. 7     siMETTL2A I     N1    -     
## 10 chrM       12    13 -1055. 7     siMETTL2A I     N1    -     
## # ℹ 168,445 more rows
espresso_annotations <- 
  read_tsv(
    paste0(wd, 'Tables/Espresso_AsPC1_annotation_cleaned_2024-03-29.tsv')
  )
## Rows: 36717 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (12): seqname, source, feature, score, strand, frame, gene_id, transcrip...
## dbl  (2): start, end
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
espresso_annotations
## # A tibble: 36,717 × 14
##    seqname source feature  start    end score strand frame gene_id transcript_id
##    <chr>   <chr>  <chr>    <dbl>  <dbl> <chr> <chr>  <chr> <chr>   <chr>        
##  1 chr3    annot… transc… 3.15e6 3.15e6 .     -      .     ENSG00… ENST00000498…
##  2 chr3    annot… transc… 3.15e6 3.15e6 .     -      .     ENSG00… ENST00000459…
##  3 chr3    annot… transc… 3.15e6 3.18e6 .     -      .     ENSG00… ENST00000231…
##  4 chr3    annot… transc… 3.15e6 3.18e6 .     -      .     ENSG00… ENST00000432…
##  5 chr3    annot… transc… 3.13e6 3.13e6 .     +      .     ENSG00… ENST00000339…
##  6 chr3    annot… transc… 3.15e6 3.16e6 .     -      .     ENSG00… ENST00000488…
##  7 chr3    annot… transc… 3.13e6 3.13e6 .     +      .     ENSG00… ENST00000420…
##  8 chr3    annot… transc… 3.14e6 3.15e6 .     +      .     ENSG00… ENST00000698…
##  9 chr3    annot… transc… 3.17e6 3.18e6 .     -      .     ENSG00… ENST00000450…
## 10 chr3    annot… transc… 3.15e6 3.15e6 .     +      .     ENSG00… ENST00000698…
## # ℹ 36,707 more rows
## # ℹ 4 more variables: gene_type <chr>, gene_name <chr>, transcript_type <chr>,
## #   transcript_name <chr>
gencode_annotations <-  read_gtf_transcripts(
  '/Volumes/Mitsu_NGS_3/METTL2A/Database/gencode.v43.annotation_plus-tRNA.gtf'
)
gencode_annotations
## # A tibble: 253,510 × 15
##    seqname source  feature    start   end score strand frame attributes  gene_id
##    <chr>   <chr>   <chr>      <dbl> <dbl> <chr> <chr>  <chr> <noquote>   <chr>  
##  1 chrM    ENSEMBL transcript   577   647 .     +      .     gene_id "E… ENSG00…
##  2 chrM    ENSEMBL transcript   648  1601 .     +      .     gene_id "E… ENSG00…
##  3 chrM    ENSEMBL transcript  1602  1670 .     +      .     gene_id "E… ENSG00…
##  4 chrM    ENSEMBL transcript  1671  3229 .     +      .     gene_id "E… ENSG00…
##  5 chrM    ENSEMBL transcript  3230  3304 .     +      .     gene_id "E… ENSG00…
##  6 chrM    ENSEMBL transcript  3230  3304 .     +      .     gene_id "2… 26266  
##  7 chrM    ENSEMBL transcript  3307  4262 .     +      .     gene_id "E… ENSG00…
##  8 chrM    ENSEMBL transcript  4263  4331 .     +      .     gene_id "E… ENSG00…
##  9 chrM    ENSEMBL transcript  4329  4400 .     -      .     gene_id "E… ENSG00…
## 10 chrM    ENSEMBL transcript  4402  4469 .     +      .     gene_id "E… ENSG00…
## # ℹ 253,500 more rows
## # ℹ 5 more variables: gene_type <chr>, gene_name <chr>, transcript_id <chr>,
## #   transcript_type <chr>, transcript_name <chr>
espresso_annotations_chrM <- 
  espresso_annotations |> 
  filter(seqname == 'chrM')
espresso_annotations_chrM
## # A tibble: 23 × 14
##    seqname source   feature start   end score strand frame gene_id transcript_id
##    <chr>   <chr>    <chr>   <dbl> <dbl> <chr> <chr>  <chr> <chr>   <chr>        
##  1 chrM    novel_i… transc…  9222 13882 .     -      .     <NA>    ESPRESSO:chr…
##  2 chrM    annotat… transc…  8366  8572 .     +      .     ENSG00… ENST00000361…
##  3 chrM    annotat… transc…   648  1601 .     +      .     ENSG00… ENST00000389…
##  4 chrM    annotat… transc… 14674 14742 .     -      .     ENSG00… ENST00000387…
##  5 chrM    annotat… transc… 14149 14673 .     -      .     ENSG00… ENST00000361…
##  6 chrM    annotat… transc…  1671  3229 .     +      .     ENSG00… ENST00000387…
##  7 chrM    annotat… transc…  3307  4262 .     +      .     ENSG00… ENST00000361…
##  8 chrM    annotat… transc…  7586  8269 .     +      .     ENSG00… ENST00000361…
##  9 chrM    annotat… transc… 10760 12137 .     +      .     ENSG00… ENST00000361…
## 10 chrM    annotat… transc… 14747 15887 .     +      .     ENSG00… ENST00000361…
## # ℹ 13 more rows
## # ℹ 4 more variables: gene_type <chr>, gene_name <chr>, transcript_type <chr>,
## #   transcript_name <chr>
chrM_cpms |> 
  ggplot(aes(xmin = start, xmax = end, y = cpm, fill = si, group = si)) +
  geom_rect(aes(ymin = 0, ymax = cpm), alpha = 1/4) +
  facet_grid(rep ~ si) +
  scale_y_continuous(breaks = seq(-20000, 80000, 20000)) 

mapping_chrM <- 
  chrM_cpms |> 
  ggplot(
    aes(xmin = start, xmax = end, y = cpm, fill = si)) +
  geom_rect(aes(ymin = 0, ymax = cpm)) +
  facet_wrap( ~ num, ncol = 1) +
  scale_y_continuous(breaks = seq(-20000, 80000, 20000)) +
  scale_fill_manual(values = c('grey30', '#37d9cc', '#A3A3F9')) +
  theme(legend.position = 'none')


annotation_chrM_barplot <- 
  gencode_annotations |>
  #espresso_annotations_chrM |> 
  filter(seqname == 'chrM') |> 
  mutate(value = ifelse(strand == '+', 1, -1)) |> 
  ggplot(aes(xmin = start, xmax = end, y = value, 
             fill = gene_type)) +
  scale_x_continuous(limits = c(0, max(chrM_cpms$end))) +
  geom_rect(aes(ymin = 0, ymax = value))  +
  scale_fill_manual(
    values = c('gray30', '#F23E3E', 'gray30', '#3E3EF2')
  )

chrM_plot <- 
  mapping_chrM + annotation_chrM_barplot +
  plot_layout(ncol = 1, heights = c(19,1))  
chrM_plot

ggsave(
  filename = paste0(figdir, 'chrM_plot.pdf'), plot = chrM_plot, 
  width = 9, height = 18, units = 'cm')



chrM_cpms |> 
  filter(strand == '-') |> 
  ggplot(aes(xmin = start, xmax = end, y = cpm, fill = strand)) +
  geom_rect(aes(ymin = 0, ymax = cpm)) +
  facet_wrap( ~ si, ncol = 3) +
  scale_y_continuous(limits = c(-500, 0)) +
  theme_bw(base_size = 7)
## Warning: Removed 3630 rows containing missing values or values outside the scale range
## (`geom_rect()`).

Sesison info

sessioninfo::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.2.2 (2022-10-31)
##  os       macOS 14.4.1
##  system   aarch64, darwin20
##  ui       X11
##  language (EN)
##  collate  en_US.UTF-8
##  ctype    en_US.UTF-8
##  tz       Asia/Tokyo
##  date     2024-04-06
##  pandoc   3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  ! package      * version    date (UTC) lib source
##    abind          1.4-5      2016-07-21 [1] CRAN (R 4.2.0)
##    backports      1.4.1      2021-12-13 [1] CRAN (R 4.2.0)
##    bit            4.0.5      2022-11-15 [1] CRAN (R 4.2.0)
##    bit64          4.0.5      2020-08-30 [1] CRAN (R 4.2.0)
##    broom          1.0.5      2023-06-09 [1] CRAN (R 4.2.0)
##    bslib          0.6.1      2023-11-28 [1] CRAN (R 4.2.3)
##    cachem         1.0.8      2023-05-01 [1] CRAN (R 4.2.0)
##    car            3.1-2      2023-03-30 [1] CRAN (R 4.2.0)
##    carData        3.0-5      2022-01-06 [1] CRAN (R 4.2.0)
##    class          7.3-22     2023-05-03 [1] CRAN (R 4.2.0)
##    cli            3.6.2      2023-12-11 [1] CRAN (R 4.2.3)
##    codetools      0.2-19     2023-02-01 [1] CRAN (R 4.2.0)
##    colorspace     2.1-0      2023-01-23 [1] CRAN (R 4.2.0)
##    crayon         1.5.2      2022-09-29 [1] CRAN (R 4.2.0)
##    data.table     1.15.2     2024-02-29 [1] CRAN (R 4.2.3)
##    desc           1.4.3      2023-12-10 [1] CRAN (R 4.2.3)
##    devtools       2.4.5      2022-10-11 [1] CRAN (R 4.2.0)
##    dials          1.2.1      2024-02-22 [1] CRAN (R 4.2.3)
##    DiceDesign     1.10       2023-12-07 [1] CRAN (R 4.2.3)
##    digest         0.6.35     2024-03-11 [1] CRAN (R 4.2.3)
##    dplyr        * 1.1.4      2023-11-17 [1] CRAN (R 4.2.3)
##    ellipsis       0.3.2      2021-04-29 [1] CRAN (R 4.2.0)
##    evaluate       0.23       2023-11-01 [1] CRAN (R 4.2.0)
##    fansi          1.0.6      2023-12-08 [1] CRAN (R 4.2.3)
##    farver         2.1.1      2022-07-06 [1] CRAN (R 4.2.0)
##    fastmap        1.1.1      2023-02-24 [1] CRAN (R 4.2.0)
##    forcats      * 1.0.0      2023-01-29 [1] CRAN (R 4.2.0)
##    foreach        1.5.2      2022-02-02 [1] CRAN (R 4.2.0)
##    fs             1.6.3      2023-07-20 [1] CRAN (R 4.2.0)
##    furrr          0.3.1      2022-08-15 [1] CRAN (R 4.2.0)
##    future         1.33.1     2023-12-22 [1] CRAN (R 4.2.3)
##    future.apply   1.11.1     2023-12-21 [1] CRAN (R 4.2.3)
##    generics       0.1.3      2022-07-05 [1] CRAN (R 4.2.0)
##    ggforce        0.4.2      2024-02-19 [1] CRAN (R 4.2.3)
##    ggplot2      * 3.5.0      2024-02-23 [1] CRAN (R 4.2.3)
##    ggpubr         0.6.0      2023-02-10 [1] CRAN (R 4.2.0)
##    ggrepel        0.9.5      2024-01-10 [1] CRAN (R 4.2.3)
##    ggsignif       0.6.4      2022-10-13 [1] CRAN (R 4.2.0)
##    globals        0.16.3     2024-03-08 [1] CRAN (R 4.2.3)
##    glue           1.7.0      2024-01-09 [1] CRAN (R 4.2.3)
##    gower          1.0.1      2022-12-22 [1] CRAN (R 4.2.0)
##    GPfit          1.0-8      2019-02-08 [1] CRAN (R 4.2.0)
##    gtable         0.3.4      2023-08-21 [1] CRAN (R 4.2.0)
##    hardhat        1.3.1      2024-02-02 [1] CRAN (R 4.2.3)
##    highr          0.10       2022-12-22 [1] CRAN (R 4.2.0)
##    hms            1.1.3      2023-03-21 [1] CRAN (R 4.2.0)
##    htmltools      0.5.7      2023-11-03 [1] CRAN (R 4.2.0)
##    htmlwidgets    1.6.4      2023-12-06 [1] CRAN (R 4.2.3)
##    httpuv         1.6.14     2024-01-26 [1] CRAN (R 4.2.3)
##    ipred          0.9-14     2023-03-09 [1] CRAN (R 4.2.0)
##    iterators      1.0.14     2022-02-05 [1] CRAN (R 4.2.0)
##    jquerylib      0.1.4      2021-04-26 [1] CRAN (R 4.2.0)
##    jsonlite       1.8.8      2023-12-04 [1] CRAN (R 4.2.3)
##    knitr          1.45       2023-10-30 [1] CRAN (R 4.2.0)
##    labeling       0.4.3      2023-08-29 [1] CRAN (R 4.2.0)
##    later          1.3.2      2023-12-06 [1] CRAN (R 4.2.3)
##    lattice        0.22-6     2024-03-20 [1] CRAN (R 4.2.3)
##    lava           1.8.0      2024-03-05 [1] CRAN (R 4.2.3)
##    lhs            1.1.6      2022-12-17 [1] CRAN (R 4.2.0)
##    lifecycle      1.0.4      2023-11-07 [1] CRAN (R 4.2.3)
##    listenv        0.9.1      2024-01-29 [1] CRAN (R 4.2.3)
##    lubridate    * 1.9.3      2023-09-27 [1] CRAN (R 4.2.0)
##    magrittr       2.0.3      2022-03-30 [1] CRAN (R 4.2.0)
##    MASS           7.3-60.0.1 2024-01-13 [1] CRAN (R 4.2.3)
##    Matrix         1.6-5      2024-01-11 [1] CRAN (R 4.2.3)
##    memoise        2.0.1      2021-11-26 [1] CRAN (R 4.2.0)
##    mime           0.12       2021-09-28 [1] CRAN (R 4.2.0)
##    miniUI         0.1.1.1    2018-05-18 [1] CRAN (R 4.2.0)
##    munsell        0.5.0      2018-06-12 [1] CRAN (R 4.2.0)
##  R myUtilities  * 0.0.0.9000 <NA>       [?] <NA>
##    nnet           7.3-19     2023-05-03 [1] CRAN (R 4.2.0)
##    parallelly     1.37.1     2024-02-29 [1] CRAN (R 4.2.3)
##    parsnip        1.2.0      2024-02-16 [1] CRAN (R 4.2.3)
##    patchwork    * 1.2.0      2024-01-08 [1] CRAN (R 4.2.3)
##    pillar         1.9.0      2023-03-22 [1] CRAN (R 4.2.0)
##    pkgbuild       1.4.4      2024-03-17 [1] CRAN (R 4.2.3)
##    pkgconfig      2.0.3      2019-09-22 [1] CRAN (R 4.2.0)
##    pkgload        1.3.4      2024-01-16 [1] CRAN (R 4.2.3)
##    polyclip       1.10-6     2023-09-27 [1] CRAN (R 4.2.0)
##    prodlim        2023.08.28 2023-08-28 [1] CRAN (R 4.2.0)
##    profvis        0.3.8      2023-05-02 [1] CRAN (R 4.2.0)
##    promises       1.2.1      2023-08-10 [1] CRAN (R 4.2.0)
##    purrr        * 1.0.2      2023-08-10 [1] CRAN (R 4.2.0)
##    R6             2.5.1      2021-08-19 [1] CRAN (R 4.2.0)
##    ragg           1.3.0      2024-03-13 [1] CRAN (R 4.2.3)
##    Rcpp           1.0.12     2024-01-09 [1] CRAN (R 4.2.3)
##    readr        * 2.1.5      2024-01-10 [1] CRAN (R 4.2.3)
##    recipes        1.0.10     2024-02-18 [1] CRAN (R 4.2.3)
##    remotes        2.5.0      2024-03-17 [1] CRAN (R 4.2.3)
##    rlang          1.1.3      2024-01-10 [1] CRAN (R 4.2.3)
##    rmarkdown      2.26       2024-03-05 [1] CRAN (R 4.2.3)
##    rpart          4.1.23     2023-12-05 [1] CRAN (R 4.2.3)
##    rprojroot      2.0.4      2023-11-05 [1] CRAN (R 4.2.0)
##    rsample        1.2.0      2023-08-23 [1] CRAN (R 4.2.0)
##    rstatix        0.7.2      2023-02-01 [1] CRAN (R 4.2.0)
##    rstudioapi     0.15.0     2023-07-07 [1] CRAN (R 4.2.0)
##    sass           0.4.9      2024-03-15 [1] CRAN (R 4.2.3)
##    scales         1.3.0      2023-11-28 [1] CRAN (R 4.2.3)
##    sessioninfo    1.2.2      2021-12-06 [1] CRAN (R 4.2.0)
##    shiny          1.8.0      2023-11-17 [1] CRAN (R 4.2.3)
##    stringi        1.8.3      2023-12-11 [1] CRAN (R 4.2.3)
##    stringr      * 1.5.1      2023-11-14 [1] CRAN (R 4.2.3)
##    survival       3.5-8      2024-02-14 [1] CRAN (R 4.2.3)
##    systemfonts    1.0.6      2024-03-07 [1] CRAN (R 4.2.3)
##    textshaping    0.3.7      2023-10-09 [1] CRAN (R 4.2.0)
##    tibble       * 3.2.1      2023-03-20 [1] CRAN (R 4.2.0)
##    tidyr        * 1.3.1      2024-01-24 [1] CRAN (R 4.2.3)
##    tidyselect     1.2.1      2024-03-11 [1] CRAN (R 4.2.3)
##    tidyverse    * 2.0.0      2023-02-22 [1] CRAN (R 4.2.0)
##    timechange     0.3.0      2024-01-18 [1] CRAN (R 4.2.3)
##    timeDate       4032.109   2023-12-14 [1] CRAN (R 4.2.3)
##    tune           1.2.0      2024-03-20 [1] CRAN (R 4.2.2)
##    tweenr         2.0.3      2024-02-26 [1] CRAN (R 4.2.3)
##    tzdb           0.4.0      2023-05-12 [1] CRAN (R 4.2.0)
##    urlchecker     1.0.1      2021-11-30 [1] CRAN (R 4.2.0)
##    usethis        2.2.3      2024-02-19 [1] CRAN (R 4.2.3)
##    utf8           1.2.4      2023-10-22 [1] CRAN (R 4.2.0)
##    vctrs          0.6.5      2023-12-01 [1] CRAN (R 4.2.3)
##    vroom          1.6.5      2023-12-05 [1] CRAN (R 4.2.3)
##    withr          3.0.0      2024-01-16 [1] CRAN (R 4.2.3)
##    workflows      1.1.4      2024-02-19 [1] CRAN (R 4.2.3)
##    xfun           0.42       2024-02-08 [1] CRAN (R 4.2.3)
##    xtable         1.8-4      2019-04-21 [1] CRAN (R 4.2.0)
##    yaml           2.3.8      2023-12-11 [1] CRAN (R 4.2.3)
##    yardstick      1.3.0      2024-01-19 [1] CRAN (R 4.2.3)
## 
##  [1] /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library
## 
##  R ── Package was removed from disk.
## 
## ──────────────────────────────────────────────────────────────────────────────